from pathlib import Path

# 创建一个Path对象
path = Path('../resources/test.txt')

# 使用/运算符进行路径拼接
path2 = Path('./') / 'subdir' / 'file.txt'
print(path2)

# 获取绝对路径
print(path.absolute())
print(path2.absolute())

# 检查路径是否存在
path = Path('../resources/file.txt')
exists = path.exists()
print(f"{path} {'存在' if exists else '不存在'}")


# 获取文件名、文件名主体、扩展名
filename = path.name
filename_without_ext = path.stem
ext = path.suffix
print(f"文件名：{filename}")    # 文件名：file.txt
print(f"文件名主体：{filename_without_ext}")  # 文件名主体：file
print(f"扩展名：{ext}") # 扩展名：.txt

# 获取父目录
parent_dir = path.parent
print(f"父目录：{parent_dir}")  # ..\resources

# 列出目录中的所有文件和子目录
directory = Path('../resources')
print(directory.iterdir())  # <map object at 0x0000013EE1706980>
for item in directory.iterdir():
    print(item)

# 创建目录
directory = Path('../resources/test/my_data')
# 当设置parents=True时，如果父目录不存在，那么就会创建
# 当设置exist_ok=True时，如果目录已经存在，那么就会忽略，不会抛出异常
directory.mkdir(parents=True, exist_ok=True)


# 读取和写入文件
# 读取文件内容
path = Path('../resources/file.txt')
content = path.read_text(encoding='utf-8')
print(content)

# 写入文件内容
path.write_text('我们新写入的内容',encoding='utf-8')